/*
 *    Copyright (c) 2018-2025, boss All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 * Redistributions of source code must retain the above copyright notice,
 * this list of conditions and the following disclaimer.
 * Redistributions in binary form must reproduce the above copyright
 * notice, this list of conditions and the following disclaimer in the
 * documentation and/or other materials provided with the distribution.
 * Neither the name of the boss developer nor the names of its
 * contributors may be used to endorse or promote products derived from
 * this software without specific prior written permission.
 * Author: boss
 */

package com.hopes.bizz.risk.control.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.hopes.boss.common.entity.BaseLogicEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.Date;

/**
 * 风险分析单元
 *
 * @author daijie
 * @date 2023-07-17 18:53:13
 */
@Data
@TableName("risk_unit")
@EqualsAndHashCode(callSuper = true)
@Schema(description = "风险分析单元")
public class RiskUnitEntity extends BaseLogicEntity {

    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    @TableId(type = IdType.ASSIGN_ID)
    @Schema(description = "id")
    private Long id;
    /**
     * uid
     */
    @Schema(description = "uid")
    private String uid;
    /**
     * 风险对象标识
     */
    @Schema(description = "风险对象标识")
    private Long riskObjectId;
    /**
     * 风险单元类型
     */
    @Schema(description = "风险单元类型")
    private Integer riskUnitType;

    /**
     * 风险单元名称
     */
    @Schema(description = "风险单元名称")
    private String riskName;

    /**
     * 风险单元编码
     */
    @Schema(description = "风险单元编码")
    private String riskCode;

    /**
     * 责任部门
     */
    @Schema(description = "责任部门")
    private String dept;

    /**
     * 责任岗位
     */
    @Schema(description = "责任岗位")
    private String postId;

    /**
     * 负责人
     */
    @Schema(description = "负责人")
    private String principal;

    /**
     * 管控层级
     */
    @Schema(description = "管控层级")
    private String controlLevel;

    /**
     * 风险点位置
     */
    @Schema(description = "风险点位置")
    private String riskLocation;

    /**
     * 投用日期
     */
    @Schema(description = "投用日期")
    private Date serviceDate;

    /**
     * 潜在隐患情况
     */
    @Schema(description = "潜在隐患情况")
    private String hazardDesc;

    /**
     * 应急处置措施
     */
    @Schema(description = "应急处置措施")
    private String emergencyDesc;

    /**
     * 是否已辨识
     */
    @Schema(description = "是否已辨识")
    private Boolean identifyFlag;

    /**
     * 辨识方法
     */
    @Schema(description = "辨识方法")
    private String identifyMethod;

    /**
     * 评估方法
     */
    @Schema(description = "评估方法")
    private String evaluateMethod;

    /**
     * 评估日期
     */
    @Schema(description = "评估日期")
    private Date evaluateDate;

    /**
     * 复评日期
     */
    @Schema(description = "复评日期")
    private Date reevaluateDate;

    /**
     * 评估负责人
     */
    @Schema(description = "评估负责人")
    private Long evaluateUserId;

    /**
     * 辨识负责人
     */
    @Schema(description = "辨识负责人")
    private Long identifyUserId;

    /**
     * 审核人
     */
    @Schema(description = "审核人")
    private Long auditUserId;

    /**
     * 审核日期
     */
    @Schema(description = "审核日期")
    private Date auditDate;

    /**
     * 评估参与人员
     */
    @Schema(description = "评估参与人员")
    private String evaluateMember;

    /**
     * 经度
     */
    @Schema(description = "经度")
    private String longitude;

    /**
     * 纬度
     */
    @Schema(description = "纬度")
    private String latitude;

    /**
     * 高度
     */
    @Schema(description = "高度")
    private String altitude;

    /**
     * 范围
     */
    @Schema(description = "范围")
    private String areaScope;

    /**
     * 二维码
     */
    @Schema(description = "二维码")
    private String qrCode;

    /**
     * NFC编码
     */
    @Schema(description = "NFC编码")
    private String nfcCode;

    /**
     * 备注
     */
    @Schema(description = "备注")
    private String remarks;

    /**
     * 照片
     */
    @Schema(description = "照片")
    private String img;

    /**
     * 数据是否上报
     */
    @Schema(description = "数据是否上报")
    private Boolean reportDataFlag;

    /**
     * 固有风险等级
     */
    @Schema(description = "固有风险等级")
    private Integer riskLevel;

    /**
     * 固有风险值
     */
    @Schema(description = "固有风险值")
    private Integer riskValue;

    /**
     * 固有风险描述
     */
    @Schema(description = "固有风险描述")
    private String riskDesc;

    /**
     * 控制后风险值
     */
    @Schema(description = "控制后风险值")
    private Integer afterRiskValue;

    /**
     * 控制后风险等级
     */
    @Schema(description = "控制后风险等级")
    private Integer afterRiskLevel;

    /**
     * 控制后风险描述
     */
    @Schema(description = "控制后风险描述")
    private String afterRiskDesc;

    /**
     * 机构ID
     */
    @Schema(description = "机构ID")
    private Long orgId;
}